package avicit.bdp.dgs.qa.service.algo;

import avicit.platform6.core.exception.BusinessException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-10-27
 * @类说明：AlgoStrategySelector
 * @修改记录：
 * @注意事项：
 * @主要功能：算法策略选择器
 */
@Component
public class AlgoStrategySelector {
    /**
     * SpringBoot启动时根据@Component中配置的key，自动注入到engineMap中。
     */
    @Autowired
    private Map<String, IAlgo> algoMap;

    /**
     * 根据key获取计算引擎
     * @param type
     * @return
     */
    public IAlgo getAlgoByType(String type) {
        IAlgo algo = this.algoMap.get(type);
        if (algo == null) {
            throw new BusinessException("不支持该引擎：" + type);
        }

        return algo;
    }
}
